// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import state from '@admin/views/Maintain/Device/DeviceList/store/state'

const { WORD } = state.MAP
const PARAM = { idList: [], rowList: [] }

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 信息状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__选择__', WORD], // 菜单
    getList: state.API.getList,
    transList(arr, { state: { param } }) {
      arr.forEach((item) => {
        item.assetId = item.id
        item.assetTypeName = item.assetTypeName || param.assetTypeName || '未知'
      })
      return arr
    },
  },

  /**
   * 映射
   */
  MAP: {
    WORD,
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: '', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: {
    obj: {}, // 数据对象
    bind: '', // 绑定键名
    limit: 0, // 限制已选个数
    disabled: false, // 是否禁用选择
    grayed: [], // 置灰列表 (以 idKey 对应的字段匹配)
    nameKey: 'assetName', // 名称键名
    areaId: '', // 指定区域 ID
    assetTypeId: '', // 指定资产分类
    disableType: false, // 是否禁用资产分类
    left: CORE.clone(PARAM), // 左侧参数
    right: CORE.clone(PARAM), // 右侧参数
    height: 0, // 表格高度
  },

  // —————————————————————————————— 下拉框状态 —————————————————————————————— //

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: {
    ...state.INIT_PARAM,
    queryTypeTag: 0,
  },
}
